Welcome to django!

8.05 ORM查询数据

1、Sql写入:

mysql> insert into user1(uerName,passWord,age,birthDay) values('韦广和死佬','12345',18,'2020-12-12');

Query OK, 1 row affected (0.01 sec)

mysql> insert into user1(uerName,passWord,age,birthDay) values('韦林死佬','12345',18,'2020-12-12');

Query OK, 1 row affected (0.01 sec)

mysql> insert into user1(uerName,passWord,age,birthDay) values('张三','12345',18,'2020-12-12');

Query OK, 1 row affected (0.01 sec)

mysql> insert into user1(uerName,passWord,age,birthDay) values('李四','12345',18,'2020-12-12');

Query OK, 1 row affected (0.01 sec)

2、在model.py中添加def __str__

from django.db import models

class User1(models.Model):

id=models.AutoField(primary_key=True)

uerName=models.CharField(max_length=100)

passWord=models.CharField(max_length=100)

age=models.IntegerField()

birthDay=models.DateTimeField()

def __str__(self):

return self.uerName

class Meta:

db_table="user1"

3、在views.py中写入

from django.shortcuts import render,HttpResponse

from django.http import JsonResponse

from .models import User1

def text(request):

res=User1.objects.all()

res=list([i.uerName for i in res]) #上面的res是一个对生成器,需要转经列表

return JsonResponse(res, safe=False, json_dumps_params={'ensure_ascii': False})

4、运行后结果:

查询1:

from django.shortcuts import render,HttpResponse

from .models import User1

def text(request):

res=User1.objects.filter(uerName='韦林死佬')

print(res)

return HttpResponse("OK")

终端返回结果:

<QuerySet [<User1: 韦林死佬>]>

[09/Oct/2025 22:22:50] "GET /app082/text HTTP/1.1" 200 2

查询1:

from django.shortcuts import render,HttpResponse

from .models import User1

def text(request):

res=User1.objects.filter(uerName='韦林死佬')

print(res)

return HttpResponse("OK")

终端返回结果:

<QuerySet [<User1: 韦林死佬>]>

[09/Oct/2025 22:22:50] "GET /app082/text HTTP/1.1" 200 2

查询2:查询满足条件值

from django.shortcuts import render,HttpResponse

from .models import User1

def text(request):

res=User1.objects.filter(uerName='韦林死佬')

print(res)

res1 = User1.objects.filter(age=18)

for i in res1:

print(i.id,i.uerName,i.age)

return HttpResponse("OK")

终端返回结果:

<QuerySet [<User1: 韦林死佬>]>

1 韦广和死佬 18

2 韦林死佬 18

3 张三 18

4 李四 18

[18/Oct/2025 15:37:53] "GET /app082/text HTTP/1.1" 200 2

查询3:查询满足第一个条件返回

Model.py增加:

from django.db import models

class User1(models.Model):

id=models.AutoField(primary_key=True)

uerName=models.CharField(max_length=100)

passWord=models.CharField(max_length=100)

age=models.IntegerField()

birthDay=models.DateTimeField()

def __str__(self):

return str(self.id)+self.uerName+str(self.age)

class Meta:

db_table="user1"

views.py

from django.shortcuts import render,HttpResponse

from .models import User1

def text(request):

res=User1.objects.filter(age=18).first()

print(res)

return HttpResponse("OK")

终端返回结果:

1韦广和死佬18

[18/Oct/2025 15:43:48] "GET /app082/text HTTP/1.1" 200 2

查询3:查询有且有一个满足条件,如果多条数据满足,则会报错。

from django.shortcuts import render,HttpResponse

from .models import User1

def text(request):

res=User1.objects.get(age=18)

print(res)

return HttpResponse("OK")

MultipleObjectsReturned at /app082/text